<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>1.1动态类型语言和鸭子类型</title>
</head>
<body>
<p>编程语言大致分为两类 一类是静态类型语言 一类是动态类型语言</p>
<p>静态类型: 在编译时便已确定变量的类型</p>

<p>动态类型: 待变量被赋予某个值的时候 才会有具有某种类型</p>

🦆类型
<script>
    var duck = {
        duckSinging: function () {
            console.log('嘎嘎嘎')
        }
    }
    var chicken = {
        duckSinging: function () {
            console.log('嘎嘎嘎')
        }
    };
    var choir = []; // 合唱团
    var joinChoir = function (animal) {
        if (animal && typeof animal.duckSinging === 'function') {
            choir.push( animal )
            console.log('恭喜加入合唱团')
            console.log('合唱团人数', choir.length)
        }
    }
    joinChoir(duck)
    joinChoir(chicken)

</script>
<p>面向接口编程 是设计模式中最重要的思想</p>

</body>
</html>